#include<iostream>

class Test
{
public:
    //初始化列表:1.常成员变量只能在初始化列表中进行初始化赋值
    //2.括号外的一定是成员变量，括号内的一定是形参
    //3.引用成员也必须要在初始化列表中初始化
    Test(int b,double c):a(10),b(b),c(c)
    {
        
    }
    void show()
    {
        std::cout<<a<<std::endl;
    }

    //const修饰函数 //防止返回的引用对原对象的修改

    //修饰返回值
    const Test& get()
    {

        return *this;
    }
    //修饰形参
    // void func(const Test& t)//保护出入的引用修改原对象
    // {

    // }


   const Test& func(const Test &t )const //常成员函数：不能对对象的成员进行任何修改
    {
        return t;
    }

private:
    const int a;//常成员变量
    //int &d;//引用成员
    int b;
    double c;

};

int main()
{
    Test t(1,3.14);
    t.show();


    return 0;
}